
// 三步创建一个服务器
const http = require('http');
const fs = require('fs');
const path = require('path');

let server = http.createServer((req, res) => {
    // 接口是被客户端用ajax代码去进行调用的，所以有可能会导致跨域问题
    // 设置一个响应头：Access-Control-Allow-Origin:* 来解决跨域问题
    res.setHeader('Access-Control-Allow-Origin', "*");

    // 定义针对 路径是  /getHeroSkin 的GET请求的处理响应
    // 1 解构出路径和查询参数字符串
    let [pathname, query] = req.url.split('?');
    if (req.method === 'GET' && pathname === '/getHeroSkin') {
        // 带参数的请求：http://127.0.0.1:3001/getHeroSkin?heroName=程咬金
        let heroString = fs.readFileSync(path.join(__dirname, 'data.json'), 'utf8');
        // 告诉客户端给你响应回来的是一个json格式的
        res.setHeader('content-type', 'application/json;charset=utf8');

        if (query) {
            // 2. 获取查询参数字符串中的key为heroName的参数值
            let searchParams = new URLSearchParams(query);
            let heroName = searchParams.get('heroName');

            // 3. 通过filter进行筛选
            let arr = JSON.parse(heroString);
            let newArr = arr.filter(item => item.cname == heroName);
            res.end(JSON.stringify(newArr));
        } else {
            // 不带参数的请求：http://127.0.0.1:3001/getHeroSkin           
            res.end(heroString);
        }

    } else {
        res.statusCode = 404;
        res.setHeader('content-type', 'text/html;charset=utf8');
        res.end('资源找不到');
    }
})

server.listen(3001, () => {
    console.log('3001服务器准备就绪');
})
